package com.zhangtai.modules.dto;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
@Data
public class ContractRenewDto {
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long id;
    @ApiModelProperty("工号")
    private String code;
    @ApiModelProperty("姓名")
    private String name;
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long oid;

    @ApiModelProperty("合同生效时间")
    private Date contractBeginDate;
    @ApiModelProperty("合同预计结束时间")
    private Date contractEndDate;
    @ApiModelProperty("合同签署状态 0：未签 1已签 2失效")
    private Integer contractStatus;
    @ApiModelProperty("签署原因 （1：入职 2：调动 3：晋升 4：降级 5：离职）")
    private Integer operateType;
    @ApiModelProperty("原合同地址")
    private String contractEsignUrl;
    @ApiModelProperty("签约类型 （1：新签 2：续签 3：解除 4:调动新签）")
    private Integer type;
    @ApiModelProperty("合同类型 1:劳动合同 2：实习协议 3：退休返聘协议   4 解除协议")
    private String contractType;

    @ApiModelProperty("新合同开始时间")
    private Date newContractBeginDate;

    @ApiModelProperty("e签宝流程id")
    private Integer esignFlowId;

    @ApiModelProperty("公司id")
    private Long orgId;
    @ApiModelProperty("公司名称")
    private String orgName;
    @ApiModelProperty("部门id")
    private Long unitId;
    @ApiModelProperty("部门名称")
    private String unitName;
    @ApiModelProperty("岗位id")
    private Long jobId;
    @ApiModelProperty("岗位名称")
    private String jobName;

    @ApiModelProperty("甲方主体")
    private String employerCompany;
    @ApiModelProperty("甲方主体id")
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long employerCompanyId;
    @ApiModelProperty("劳动合同期限")
    private Integer laborContractYears;
}
